package com.jy.rhin.model;


import com.jy.rhin.infra.cda.EDataElement;
import com.jy.rhin.infra.cda.XPath;
import com.jy.rhin.infra.cda.XValid;
import com.jy.rhin.model.body.banqianxinxi.BanQianXX;
import com.jy.rhin.model.body.jiwangshi.XinShengEJWS;
import com.jy.rhin.model.body.shoushucaozuo.JieZhongXX;
import com.jy.rhin.model.body.yichangfanying.JieZhongYCFY;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/***
 * 预防接种报告
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class YuFangJZ extends ClinicalDocumentData {

    //文档唯一id
    @XPath(path = "/id/@extension"
            , xValid = @XValid(type = "dataElement", dataElement = EDataElement.DE01_00_008_00))
    String id;
    //搬迁信息
    @XPath(path = "/component/structuredBody/component/section/code[@displayName='搬迁信息']/..")
    BanQianXX banQianXX;
    //新生儿既往史
    @XPath(path = "/component/structuredBody/component/section/code[@code='11348-0'][@codeSystem='2.16.840.1.113883.6.1']/..")
    XinShengEJWS xinShengEJWS;
    //手术操作
    @XPath(path = "/component/structuredBody/component/section/code[@code='47519-4'][@codeSystem='2.16.840.1.113883.6.1']/.."
            , listItemPath = "/entry/procedure", listItemBackLevel = 0,
            xValid = @XValid(type = "node"))
    List<JieZhongXX> jieZhongXX;
    //疑似预防接种异常反应
    @XPath(path = "/component/structuredBody/component/section/code[@displayName='疑似预防接种异常反应']/.."
            , listItemPath = "/entry/observation/code[@code='DE08.50.018.00']", listItemBackLevel = 3)
    List<JieZhongYCFY> jieZhongYCFY;
}
